package com.youlu.campus.service.wechat;

import com.youlu.campus.common.base.RestResult;
import com.youlu.campus.entity.WechatMerchantConfig;
import com.youlu.campus.entity.wechat.WechatMerchantConfigDMLVo;
import com.youlu.campus.entity.wechat.WechatMerchantConfigVo;
import org.springframework.data.domain.Page;

public interface WechatMerchantConfigService {

    /**
     * 将数据库数据 数据 进行加密/解密操作
     */
    void initEncryptOrDecrypt();

    /**
     * 通过id 查找商户配置
     *
     * @param id
     * @return
     */
    WechatMerchantConfig findById(String id);


    /**
     * 通过平台证书编号 查找商户配置 并解密
     *
     * @param platformSerialNumber
     * @return
     */
    public WechatMerchantConfig findByPlatformSerialNumberAndDecrypt(String platformSerialNumber);

    /**
     * 通过商户号id 查找商户配置 并解密
     *
     * @param merchantId
     * @return
     */
    WechatMerchantConfig findByMerchantIdAndDecrypt(String merchantId);

    /**
     * 分页查找微信商户配置
     *
     * @param param
     * @return
     */
    Page<WechatMerchantConfig> findByPage(WechatMerchantConfigVo param);

    /**
     * 发送验证码
     */
    void sendSmsMsg();

    /**
     * 增/改 微信商户配置
     *
     * @param config
     * @return
     */
    RestResult save(WechatMerchantConfigDMLVo config);

    /**
     * 删除 微信商户配置
     *
     * @param config
     * @return
     */
    RestResult delete(WechatMerchantConfigDMLVo config);


}
